<?php

	
class Direccion
{
	var $id_prop="";
	var $id_tabl="";
	var $_direccion="";
	var $colonia="";
	var $_ciudad="";
	var $estado="";
	var $cp="";
		
	#constructor

	
	/*funciones para guardar y almacenar de la BD*/
	
	function insertar(){
		if(!$this->vacio())
		{
			$wer="INSERT INTO direcciones VALUES('".$this->getIdPropietario()."','".$this->getIdTabla()."',
						'".$this->getDireccion()."','".$this->getColonia()."','".$this->getCiudad()."','".$this->getEstado()."','".$this->getCp()."');";
			new Conexion($wer);
		}
	}
	
	function editar($dir,$col,$ciud,$edo,$cp){
		$con=  new Conexion();
		#preguntar si ya existe
		$con->ejecutar("SELECT * FROM direcciones WHERE id_propietario='".$this->getIdPropietario()."' and tabla='".$this->getIdTabla()."'; ");
		
		if(!$con->vacio())
		#ya existe el dato
		{
			if($this->vacio())
			{	#ya los dejo en blanco
				$this->eliminar();
				return;
			}
			else
			{	#editarlo
				$this->editarDireccion($dir);
				$this->editarColonia($col);
				$this->editarCiudad($ciud);
				$this->editarEstado($edo);
				$this->editarCp($cp);
			}
		}				
		else
		{
			$this->setDireccion($dir);
			$this->setColonia($col);
			$this->setCiudad($ciud);
			$this->setEstado($edo);
			$this->setCp($cp);
			
			$this->insertar();
		}
	}
	function editarDireccion($e){
		if($e != $this->_direccion){
			$this->setDireccion($e);
			new Conexion("UPDATE direcciones set direccion='".$this->getDireccion()."' 
					  WHERE id_propietario='".$this->getIdPropietario()."' and tabla='".$this->getIdTabla()."';");
		}
	}

	function editarColonia($e){
		if($e != $this->colonia){
			$this->setColonia($e);
			new Conexion("UPDATE direcciones set colonia='".$this->getColonia()."' 
					  WHERE id_propietario='".$this->getIdPropietario()."' and tabla='".$this->getIdTabla()."';");
		}
		
	}
	function editarCiudad($e){
		if($e != $this->_ciudad){
			$this->setCiudad($e);
			new Conexion("UPDATE direcciones set ciudad='".$this->getCiudad()."' 
					  WHERE id_propietario='".$this->getIdPropietario()."' and tabla='".$this->getIdTabla()."';");
		}
		
	}
	function editarEstado($e){
		if($e != $this->estado){
			$this->setEstado($e);
			new Conexion("UPDATE direcciones set estado='".$this->getEstado()."' 
					  WHERE id_propietario='".$this->getIdPropietario()."' and tabla='".$this->getIdTabla()."';");
		}
		
	}
	function editarCp($e){
		if($e != $this->cp){
			$this->setCp($e);
			new Conexion("UPDATE direcciones set cp='".$this->getCp()."' 
					  WHERE id_propietario='".$this->getIdPropietario()."' and tabla='".$this->getIdTabla()."';");
		}
		
	}
	
	function eliminar(){
		new Conexion("DELETE FROM direcciones where id_propietario='".$this->getIdPropietario()."' and tabla='".$this->getIdTabla()."';");
	}
	
	/*Utilitarias*/
	
	//checa que la clave primaria no este vacia (direccion almenos)
	function vacio()
	{
		if( (!isset($this->_direccion) || trim($this->_direccion) == "") 
			&& (!isset($this->colonia) || trim($this->colonia) == "")
			&& (!isset($this->_ciudad) || trim($this->_ciudad) == "")
			&& (!isset($this->estado) || trim($this->estado) == "")
			&& (!isset($this->cp) || trim($this->cp) == "")
		) 
			return true;#no existe o es vacio
		else
			return false;
	}
	function toObjeto()
	{
		$o = array(
			 "direccion"=> $this->getDireccion(),
			 "colonia"=> $this->getColonia(),
			 "ciudad"=> $this->getDireccion(),
			 "estado"=> strtoupper ($this->getEstado() ),
			 "cp"=> $this->getCp()
		);
		return $o;		
	}
	function toJson(){
		return json_encode($this->toObjeto());
	}
	
	function toString()
	{
		
		$q=trim($this->getDireccion());
		if($q!="" && $this->getColonia()!="")
			$q.=". ";
		if($this->getColonia()!="")
			$q.=$this->getColonia().".";
			
		
		$a=$this->getCiudad();
		if($a!="" && $this->getEstado()!="")
			$a.=". ";
		$a.=$this->getEstado();
		if($a!="" && $this->getCp()!="")
			$a.=". ";
		
		if($this->getCp())
			$z="CP ".$this->getCp();
		
		if(trim($q)!="" && (trim($a)!="" || trim($z)!="") )
			$q.="<br>";
		
		if((trim($a)!=""))
			$q.=$a."<br>";
		
		$q.=$z;
		//echo "[".$q."]";
		return ereg_replace('[[:space:]]+', ' ', trim($q));
	}
	
	
	/*Funciones SET Y GET*/
	#
	function setIdPropietario($_x){
		$this->id_prop=$_x;
	}
	function getIdPropietario(){
		return $this->id_prop;
	}
	#
	function setIdTabla($_x){
		$this->id_tabl=$_x;
	}
	function getIdTabla(){
		return $this->id_tabl;
	}
	function setDireccion($_x){
		$this->_direccion=(trim($_x)=="" || $_x=="null" || $_x==null) ?"" : $_x;
	}
	function getDireccion(){
		return $this->_direccion;
	}
	#
	function setColonia($_x){
		$this->colonia=(trim($_x)=="" || $_x=="null" || $_x==null) ?"" : $_x;
	}
	function getColonia(){
		return $this->colonia;
	}
	function setCiudad($_x){
		$this->_ciudad=(trim($_x)=="" || $_x=="null" || $_x==null) ?"" : $_x;
	}
	function getCiudad(){
		return $this->_ciudad;
	}
	function setEstado($_x){
		$this->estado=(trim($_x)=="" || $_x=="null" || $_x==null) ?"" : $_x;
	}
	function getEstado(){
		return strtoupper ($this->estado);
	}
	function setCp($_x){
		$this->cp=(trim($_x)=="" || $_x=="null" || $_x==null) ?"" : $_x;
	}
	function getCp(){
		return $this->cp;
	}
	
	
	
	function listarSelectCiudad($pagina=1,$aguja="")
	{
		$query= "select distinct ciudad from direcciones where ciudad like '%".$aguja."%'";
		$con=new Conexion();
		$con->ejecutar($query);
		$respuesta="{numFilas:".$con->numFilasResultado().",
				data: [";
		
		//echo $query." limit ".(($pagina-1)*PAGINA_CUANTOS).",".PAGINA_CUANTOS.";";exit;
		$con->ejecutar($query." limit ".(($pagina-1)*PAGINA_CUANTOS).",".PAGINA_CUANTOS.";");
		#le vamos concatenando a la respuesta cada opcion
		while($con->traerFilaPorNombre()) {
			$respuesta.= '{id:"'.$con->get("ciudad").'",nombre:"'.$con->get("ciudad").'"},';//,marco_html:"'.$this->getMarcoHTML().'"
	    }
		
		#si hay almenos una fila, nos queda una coma al final. Hay que quitarla
		if(!$con->vacio())
			$respuesta = substr($respuesta,0,strlen($respuesta)-1);
		
		$respuesta.= "]}";

		return $respuesta;
	}
}
?>
